const express = require('express');
const router = express.Router();
const dao = require('../dao/mysql/ShoppingcartDao');
const pager = require('../util/PagerHelper.js');

router.all('/list.do', async (req, res, next) => {
	let where = '';
	let flag = 0; //控制多条件是否要加and
	if (req.body) {
		console.log('req.body', req.body);
		if (req.body.uname) {
			if (where.trim().length === 0) {
				where += 'where ';
			}
			where += `uname like '%${req.body.uname}%' `;
			flag++;
		}
		if (req.body.pname) {
			if (where.trim().length === 0) {
				where += 'where ';
			}
			if (flag > 0) {
				where += ' and ';
			}
			where += ` pname like '%${req.body.pname}%' `;
			flag++;
		}
		console.log(where);
	}
	dao
		.getCount(where)
		.then((count) => {
			console.log('count', count);
			pager.setCount(count);
			return dao.findByPage(where);
		})
		.then((data) => {
			console.log('data', data);
			pager.data = data;
			res.json({
				code: 200,
				data: pager,
			});
		})
		.catch((err) => next(err));
});

router.all('/listbyuid.do', async (req, res, next) => {
	let where = '';
	if (req.body) {
		if (req.body.uid) {
			where = `where u.id = ${req.body.uid} `;
		}
        console.log('where',where);
	}
	dao
		.getCount(where)
		.then((count) => {
			console.log('count', count);
			pager.setCount(count);
			return dao.findByPage(where);
		})
		.then((data) => {
			console.log('data', data);
			pager.data = data;
			res.json({
				code: 200,
				data: pager,
			});
		})
		.catch((err) => next(err));
});

router.get('/del.do', (req, res, next) => {
	// lodash.remove(books, value => value.id == req.query.id);
	if (req.query.id) {
		dao
			.deleteById(req.query.id)
			.then((data) =>
				res.json({
					code: 200,
					msg: '删除成功',
				})
			)
			.catch((err) => next(err));
	} else {
		res.json({
			code: 200,
			msg: '删除失败',
		});
	}
});
router.get('/delBatch.do', (req, res, next) => {
	let idsStr = req.query.ids;
	console.log(idsStr);
	let ids;
	if (Array.isArray(idsStr)) {
		ids = idsStr;
	} else {
		ids = idsStr.split(','); //得到的是一个字符串数组
	}

	dao
		.deleteByIds(ids)
		.then((data) =>
			res.json({
				code: 200,
				msg: '删除成功',
			})
		)
		.catch((err) => next(err));
});

router.get('/selectids.do', (req, res, next) => {
	let idsStr = req.query.ids;
	console.log(idsStr);
	let ids;
	if (Array.isArray(idsStr)) {
		ids = idsStr;
	} else {
		ids = idsStr.split(','); //得到的是一个字符串数组
		console.log(ids);
	}

	console.log(Array.isArray(ids));
	dao
		.selectByIds(ids)
		.then((data) =>
			res.json({
				code: 200,
				data: data,
			})
		)
		.catch((err) => next(err));
});

router.get('/edit.do', (req, res, next) => {
	let { id } = req.query;
	if (id) {
		// let editObj = books.find(value => value.id == id);
		dao
			.findById(id)
			.then((editObj) => {
				if (editObj) {
					res.json({
						code: 200,
						data: editObj,
					});
				} else {
					res.json({
						code: 404,
						msg: '没有找到记录！',
					});
				}
			})
			.catch((err) => next(err));
	} else {
		res.json({
			code: 404,
			msg: '没有id！',
		});
	}
});
router.post('/save.do', (req, res, next) => {
	let newObj = Object.assign({}, req.body);
	//区分添加还是编辑
	if (newObj.id) {
		//编辑
		// let editObj = books.find(value => value.id == newObj.id);
		// //引用数据类型的特点
		// Object.assign(editObj, newObj);
		dao
			.update(newObj, newObj.id)
			.then((data) =>
				res.json({
					code: 200,
					msg: '修改成功',
				})
			)
			.catch((err) => next(err));
	} else {
		//添加
		// // books.pop();删除最后一个元素
		// newObj.id = lodash.last(books).id + 1;
		// //保存到数组中
		// books.push(newObj);
		newObj.id = 0; //id是自动增长，必须是0值
		dao
			.insert(newObj)
			.then((data) =>
				res.json({
					code: 200,
					msg: '添加成功',
				})
			)
			.catch((err) => {
				console.log(err);
				res.json({
					code: 201,
					msg: '已添加进购物车了',
				})
			});
	}
});
module.exports = router;
